Skip to content

release: wire the marketplace ingest pipeline - #480

Merged
orioltf merged 4 commits into
mainfrom
develop
Sep 8, 2026
Merged

release: wire the marketplace ingest pipeline#480
orioltf merged 4 commits into
mainfrom
develop

Conversation

@orioltf

@orioltf orioltf commented Sep 8, 2026

Copy link
Copy Markdown
Member

Closes #476

Why

Merging this fires Marketplace ingest on main for the first time, which is the whole point of the work below. The six plugin cards on the Unic AI Artefact Marketplace have advertised June's versions since a single local ingest_local.py push on 10 June 2026. unic-archon-dlc reads 0.1.2 against 0.28.0 here.

What is in it

Four commits, all of #478, and nothing else:

f3c5118  Merge pull request #478
8d3e78c  docs(repo): say that a hand-run of the mapper must not be posted
283a7ab  fix(repo): scope the Biome exclusion to the mapper, and drop a content claim
1f26ca3  feat(repo): push the plugin catalogue to the marketplace on every main push

No plugin version changes. All six current versions are already tagged, so the release workflow creates no tags from this merge:

plugin main develop tag
auto-format 0.5.15 0.5.15 present
pr-review 1.4.0 1.4.0 present
unic-archon-dlc 0.28.0 0.28.0 present
unic-confluence 3.0.0 3.0.0 present
unic-pr-review 2.1.12 2.1.12 present
unic-spec-review 0.1.11 0.1.11 present

Prerequisite met

MARKETPLACE_INGEST_TOKEN exists as a repository secret, set 2026-09-08T21:13:23Z. Verified by name and date only; the value is not readable and was never in a file or a session.

What to read after the merge

The ingest step's own log first:

received: 6, updated: 6, unchanged: 0

Corrected after the merge. This section first predicted updated: 2, unchanged: 4, on the reasoning that only unic-archon-dlc and unic-pr-review had moved. That outcome was impossible, and the run returned {"received": 6, "created": 0, "updated": 6, "unchanged": 0, "removed": 0}.

The artefact content_hash includes the push provenance. unic-spec-review stayed at 0.1.11 with an identical description, entrypoints and spec, and its hash still moved from 26ceaeb85516 to 8a57a105d588, gaining a second row for the same version. On a first pipeline push the pipeline field alone changes on all six artefacts, so unchanged: 0 was the only possible answer. That provenance feeds the hash is inferred from those two measurements, not documented: it is the only differing input.

So unchanged will not rise above zero on this source in practice, because every push carries a new commit. Do not read the counters as "did the content change". Read provenance.pipeline and the version row instead, as below.

Then three reads in the registry, because a 200 is not proof of a useful push:

  1. unic-archon-dlc shows 0.28.0 on its card.
  2. provenance.pipeline on this source flips from local:ingest_local.py to ci:map-to-envelope.mjs — the field that separates a piped registry from a stale one, and the same value the three working ADO pipelines record.
  3. The new version row carries a real author and a resolvable commit_url. Every existing row reads author: "", which VP cannot repair afterwards.

Two things worth knowing

This makes unic-agents-plugins the first GitHub repository in the registry to push through a pipeline. Established on UNICGRAPH-572: all three working pipelines are Azure DevOps, so the GitHub Actions template had no production reference until now.

That makes this push the first real exercise of UNICGRAPH-575, where the vendored mapper resolves provenance.author to GITHUB_ACTOR rather than the commit author. The template is adopted unmodified on purpose, so read the recorded author rather than assuming it.

Deferred, not forgotten: #479, the Node version the vendored workflow pins against this repository's stated floor.

🤖 Generated with Claude Code

orioltf and others added 4 commits September 7, 2026 10:56
…n push

The six plugin cards on the Unic AI Artefact Marketplace have never been
updated by this repository. They came from one local `ingest_local.py` push on
10 June 2026 and have drifted since: `unic-archon-dlc` advertises 0.1.2 against
0.28.0 here, and `unic-pr-review` 2.1.9 against 2.1.12. That push also sent no
`provenance.author`, so every version row reads "a version appeared" and
nothing else. VP cannot recover the name afterwards.

Both files are the VP templates, copied verbatim: `ci/map-to-envelope.mjs` and
`.github/workflows/marketplace-ingest.yml`. Neither is hand-written, because
the documentation warns twice that a hand-built envelope is where
`provenance.author` and the `content` block go missing. The mapper kind is
`unic-agents`, the sidecar URL is the template default, and the only setup is
the repository secret `MARKETPLACE_INGEST_TOKEN`.

`biome.json` excludes `ci` so the verbatim rule can hold. Biome reports two
errors on the vendored mapper and reformats it, and a reformatted mapper makes
the next re-copy from VP read as a diff.

The mapper resolves `provenance.author` to `GITHUB_ACTOR`, the person who
triggered the run, not the commit author — wrong on a merge-commit repository
like this one. That is filed upstream as UNICGRAPH-575 and left unpatched on
purpose, so the defect stays visible there instead of hiding in a local fork.

Refs #476

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…t claim that does not apply

`"!ci"` excluded a whole directory to protect one vendored file. Any
hand-written file added to `ci/` later would have escaped Biome with nothing
saying so. This repository already walked the same path back once: 3b47175
narrowed `.prettierignore` from `**/test/fixtures/methods/**` to
`**/vendor/mattpocock-skills/skills/**` so the vendor directory's own
README.md stayed Prettier-checked. `"!ci/map-to-envelope.mjs"` keeps the
vendored file unformatted and leaves everything else in `ci/` checked.
Verified both directions: `biome check ci/map-to-envelope.mjs` processes zero
files, and a throwaway `ci/probe.mjs` reports two findings.

The AGENTS.md paragraph cited the `content` block alongside `provenance.author`
as what a hand-built envelope loses. True of the upstream warning, misleading
here: `mapUnicAgents` emits no `content` for any plugin, mapper-built or not,
because plugins are `pointer` artefacts. A reader of AGENTS.md alone would
have concluded the mapper preserves something it never sends.

Refs #476

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The § Marketplace ingest section documents running the mapper by hand to
inspect the envelope, and said nothing about what that envelope contains. Off
CI the mapper resolves `commit`, `ref` and `author` to empty strings, because
it reads all three from the CI environment. Measured: a local run of
`node ci/map-to-envelope.mjs unic-agents .` returns `author: ""`.

Posting that is how this repository's six cards acquired a version history
with a blank author on 10 June 2026, and VP cannot repair one afterwards.
UNICGRAPH-572 has since made the local Python tool refuse a push it cannot
attribute, but that guard lives in that tool — this mapper and the ingest
endpoint both accept an empty author, so the rule has to be stated where the
command is.

Refs #476
Refs UNICGRAPH-572

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
feat(repo): push the plugin catalogue to the marketplace on every main push
@orioltf
orioltf merged commit c22d8e1 into main Sep 8, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant